###########  Main codes for R  #################

source(paste(directory,"\\miRNA-mRNA-bootstapping.r",sep=""))

########  An example for EMT data  ###########
dt1<-Read("EMT-46-E.csv")  # Read data with only E samples 
dt2<-Read("EMT-46-M.csv")   # Read data with only M samples 
stdData1<-Standardise(dt1)   # Standardise the input data
stdData2<-Standardise(dt2)   


###  Bootstrapping methods in gene expression data ###
bootstrresultIDA_1<-bootstrIDA(stdData1,100,0.01,46)
bootstrresultPearson_1<-bootstrPearson(stdData1,100,46)
bootstrresultSpearman_1<-bootstrSpearman(stdData1,100,46)
bootstrresultKendall_1<-bootstrKendall(stdData1,100,46)
bootstrresultLasso_1<-bootstrLasso(stdData1,100,46)
bootstrresultElastic_1<-bootstrElastic(stdData1,100,46)

bootstrresultIDA_2<-bootstrIDA(stdData2,100,0.01,46)
bootstrresultPearson_2<-bootstrPearson(stdData2,100,46)
bootstrresultSpearman_2<-bootstrSpearman(stdData2,100,46)
bootstrresultKendall_2<-bootstrKendall(stdData2,100,46)
bootstrresultLasso_2<-bootstrLasso(stdData2,100,46)
bootstrresultElastic_2<-bootstrElastic(stdData2,100,46)

###  Save the bootstrapping result of all methods ###
write.table(bootstrresultIDA_1, "EMT_IDA_E.csv", sep=",", row.names = FALSE, col.names = FALSE)
write.table(bootstrresultIDA_2, "EMT_IDA_M.csv", sep=",", row.names = FALSE, col.names = FALSE)

write.table(bootstrresultPearson_1, "EMT_Pearson_E.csv", sep=",", row.names = FALSE, col.names = FALSE)
write.table(bootstrresultPearson_2, "EMT_Pearson_M.csv", sep=",", row.names = FALSE, col.names = FALSE)

write.table(bootstrresultSpearman_1, "EMT_Spearman_E.csv", sep=",", row.names = FALSE, col.names = FALSE)
write.table(bootstrresultSpearman_2, "EMT_Spearman_M.csv", sep=",", row.names = FALSE, col.names = FALSE)

write.table(bootstrresultKendall_1, "EMT_Kendall_E.csv", sep=",", row.names = FALSE, col.names = FALSE)
write.table(bootstrresultKendall_2, "EMT_Kendall_M.csv", sep=",", row.names = FALSE, col.names = FALSE)

write.table(bootstrresultLasso_1, "EMT_Lasso_E.csv", sep=",", row.names = FALSE, col.names = FALSE)
write.table(bootstrresultLasso_2, "EMT_Lasso_M.csv", sep=",", row.names = FALSE, col.names = FALSE)

write.table(bootstrresultElastic_1, "EMT_Elastic_E.csv", sep=",", row.names = FALSE, col.names = FALSE)
write.table(bootstrresultElastic_2, "EMT_Elastic_M.csv", sep=",", row.names = FALSE, col.names = FALSE)


%%%%%% Main codes for Matlab %%%%%%%

load miRNA % gene names of miRNAs
load mRNA  % gene names of mRNAs
load MicroCosm % Putative target binding information
EMT_IDA_E = csvread('EMT_IDA_E.csv'); % Bootstrapping results in only E samples
EMT_IDA_M = csvread('EMT_IDA_M.csv'); % Bootstrapping results in only M samples
EMT_Pearson_E = csvread('EMT_Pearson_E.csv'); % Bootstrapping results in only E samples
EMT_Pearson_M = csvread('EMT_Pearson_M.csv'); % Bootstrapping results in only M samples
EMT_Spearman_E = csvread('EMT_Spearman_E.csv'); % Bootstrapping results in only E samples
EMT_Spearman_M = csvread('EMT_Spearman_M.csv'); % Bootstrapping results in only M samples
EMT_Kendall_E = csvread('EMT_Kendall_E.csv'); % Bootstrapping results in only E samples
EMT_Kendall_M = csvread('EMT_Kendall_M.csv'); % Bootstrapping results in only M samples
EMT_Lasso_E = csvread('EMT_Lasso_E.csv'); % Bootstrapping results in only E samples
EMT_Lasso_M = csvread('EMT_Lasso_M.csv'); % Bootstrapping results in only M samples
EMT_Elastic_E = csvread('EMT_Elastic_E.csv'); % Bootstrapping results in only E samples
EMT_Elastic_M = csvread('EMT_Elastic_M.csv'); % Bootstrapping results in only M samples

% Inferring condition-specific miRNA activity
[Result_IDA RRFinal_IDA activemiRNA_IDA] = ConditionmiRActivity(EMT_IDA_E,EMT_IDA_M,miRNA,mRNA,MicroCosm);
[Result_Pearson RRFinal_Pearson activemiRNA_Pearson] = ConditionmiRActivity(EMT_Pearson_E,EMT_Pearson_M,miRNA,mRNA,MicroCosm);
[Result_Spearman RRFinal_Spearman activemiRNA_Spearman] = ConditionmiRActivity(EMT_Spearman_E,EMT_Spearman_M,miRNA,mRNA,MicroCosm);
[Result_Kendall RRFinal_Kendall activemiRNA_Kendall] = ConditionmiRActivity(EMT_Kendall_E,EMT_Kendall_M,miRNA,mRNA,MicroCosm);
[Result_Lasso RRFinal_Lasso activemiRNA_Lasso] = ConditionmiRActivity(EMT_Lasso_E,EMT_Lasso_M,miRNA,mRNA,MicroCosm);
[Result_Elastic RRFinal_Elastic activemiRNA_Elastic] = ConditionmiRActivity(EMT_Elastic_E,EMT_Elastic_M,miRNA,mRNA,MicroCosm);

%Save the results of all interactions, significant miRNA-mRNA interactions with target binding information under KS test, and all miRNA activity under KS test
xlswrite('IDA-All-miRNA-mRNA-kstest.xlsx',Result_IDA);
xlswrite('IDA-Significant-miRNA-mRNA-kstest.xlsx',RRFinal_IDA);
xlswrite('IDA-miRNA activity.xlsx',activemiRNA_IDA);

xlswrite('Pearson-All-miRNA-mRNA-kstest.xlsx',Result_Pearson);
xlswrite('Pearson-Significant-miRNA-mRNA-kstest.xlsx',RRFinal_Pearson);
xlswrite('Pearson-miRNA activity.xlsx',activemiRNA_Pearson);


xlswrite('Spearman-All-miRNA-mRNA-kstest.xlsx',Result_Spearman);
xlswrite('Spearman-Significant-miRNA-mRNA-kstest.xlsx',RRFinal_Spearman);
xlswrite('Spearman-miRNA activity.xlsx',activemiRNA_Spearman);

xlswrite('Kendall-All-miRNA-mRNA-kstest.xlsx',Result_Kendall);
xlswrite('Kendall-Significant-miRNA-mRNA-kstest.xlsx',RRFinal_Kendall);
xlswrite('Kendall-miRNA activity.xlsx',activemiRNA_Kendall);

xlswrite('Lasso-All-miRNA-mRNA-kstest.xlsx',Result_Lasso);
xlswrite('Lasso-Significant-miRNA-mRNA-kstest.xlsx',RRFinal_Lasso);
xlswrite('Lasso-miRNA activity.xlsx',activemiRNA_Lasso);

xlswrite('Elastic-All-miRNA-mRNA-kstest.xlsx',Result_Elastic);
xlswrite('Elastic-Significant-miRNA-mRNA-kstest.xlsx',RRFinal_Elastic);
xlswrite('Elastic-miRNA activity.xlsx',activemiRNA_Elastic);

